Заголовок материла Joomla в теге H1

Начиная знакомство с понятием SEO-оптимизации, многие начинающие веб-разработчики впервые узнают о том, что материал на странице сайта должен соответствовать определенной иерархии. На странице должны быть четко структурированы заголовки и не как попало, а по определенным правилам:

  • Заголовок страницы должен быть в теге H1
  • Больше одного тега H1 на странице быть не должно
  • Последующие подзаголовки должны начинаться с тега H2, в них вложены заголовки H3 и так далее
  • Тегов H2, как и последующих может быть сколько угодно

Благодаря такой структуре поисковые роботы, посещая страницы Вашего сайта, находят первый тег H1 и считают его основным, то есть тем, который определяет тему данной страницы. Если таких тегов будет несколько, то поисковый робот может не правильно понять такую структуру и понизить страницу в поисковой выдаче. Примерно такая же ситуация может получиться если на странице не будет заголовка первого уровня вообще.

С теорией все понятно, но когда дело доходит до практики, начинающие веб-разработчики сталкиваются с определенной проблемой – в Joomla заголовки материала заключены в тегах H2. Следовательно, данное упущение стоит исправить.

В данной статье мы поговорим о том как сделать заголовок h1 в Joomla для того чтобы повысить шансы сайта на повышение позиций в поисковой выдаче.

Почему в Joomla заголовок страницы в теге H2

Для начала давайте разберемся, почему в Joomla под заголовок страницы разработчики решили выделить тег H2, а не H1.

Если честно это никакая не ошибка или упущение разработчиков, просто у них такая своеобразная логика. По этой самой логике тег H1 должен быть у названия пункта меню. В этом можно убедиться, если открыть один из пунктов меню и на вкладке «Параметры страницы» поставить переключатель «Показывать заголовок страницы» в положение «Да».

Показываем заголовок меню на странице сайта в теге H1

Причем если не указывать значения «Заголовок страницы в браузере» либо «Заголовок страницы» тогда в качестве тега H1 на странице сайта будет выведен заголовок самого пункта меню.

В результате заголовки на странице сайта будет выглядеть следующим образом:

Теги H1 и H2 на страницах сайта Joomla

В принципе логика тут прослеживается, заголовок H1 все же присутствует, но для этого необходимо для каждого материала выделять свой пункт меню, а если их достаточно большое количество, то и размер меню будет огромным. Такой подход пусть и возможен, но не всех может устроить.

А давайте рассмотрим другой случай, когда в качестве типа пункта меню будет выступать не материал как в предыдущем случае, а список материалов категории. В этом случае если включить отображение заголовка пункта меню, то у каждого материла категории, будет одинаковый заголовок. Это если честно уже перебор.

В любом случае если мы хотим повысить доверие к сайту со стороны поисковых систем, тогда «странную логику» разработчиков Joomla стоит несколько подправить.

Какие существуют способы изменить тег заголовка с H2 на H1 в Joomla

Если честно выбор не велик и существует всего два способа замены заголовка материала в Joomla с тега H2 на H1:

  • Редактирование файла макета статьи
  • Переопределение файла макета с последующим редактированием

На большинстве сайтов Вы сможете найти информацию как сделать заголовок материала Joomla в теге H1, но практически все они описывают только первый способ - правку файла макета (или шаблона) статьи.

По сути оба способа похожи, изменять будем один и тот же файл, но есть между ними и существенное отличие.

Чтобы понять, в чем разница между этими двумя способами, и какой подойдет именно для Вас, давайте рассмотрим их подробнее.

Редактирование файла макета статьи

Этот метод самый распространенный и позволяет сделать заголовок материала в теге H1 путем правки определенного файла.

Если Вы ни разу не вносили изменения в файлы CMS Joomla, советую прочитать данную статью, но на всякий случай повторюсь. Первое что необходимо сделать это зайти на сайт по FTP при помощи любого доступного FTP-клиента (например, FileZilla), далее в корневой папке сайта проследовать по пути /components/com_content/views/article/tmpl. Конечно, можно воспользоваться файловым менеджером на Вашем хостинге (если такой имеется), но если честно метод с FTP мне лично нравится больше.

Итак, в папке /components/com_content/views/article/tmpl мы видим 3 файла, но нас интересует только файл с именем default.php. Для начала открываем данный файл для редактирования обычным текстовым редактором (я предпочитаю Sublime Text либо Notepad++). 

Файл относительно не большой и в стандартном варианте Joomla версии 3.7.4 состоит из 173 строк кода. Теперь нам надо найти строку, которая отвечает за заголовок материала. Для этого проще всего воспользоваться поиском – нажать Ctrl+F, написать в строку поиска «h2» (без кавычек естественно). Поиск перенесет нас к нужной строке кода, которая в зависимости от версии Joomla (или используемого шаблона, в котором переопределены файлы движка) может отличаться. В Joomla 3.7.4 нужный нам код расположен в строках 53 – 55:

<h2 itemprop="headline">
 <?php echo $this->escape($this->item->title); ?>
</h2>

Все что от нас требуется это заменить h2 на h1 и сохранить изменения. В результате если перейти на сайт и посмотреть код страницы мы убедимся в том, что заголовок материала теперь находится в теге H1:

Теперь заголовок материала Joomla в теге H1

Метод действительно рабочий, после проделанных манипуляций мы получим желаемый результат.

Однако мало кто Вам скажет о том, что после обновления Джумлы все изменения могут быть потеряны в связи с заменой данного файла более новым. В таком случае придётся повторять весь процесс после каждого обновления Joomla.

Переопределение компонента com_content с последующим редактированием файла макета

Данный способ хорош тем, что после обновления Joomla внесенные изменений никуда не исчезнут, но для этого придется прибегнуть к переопределению.

Для создания переопределения в панели управления переходим в раздел «Расширения» -> «Шаблоны». Определяем, какой из имеющихся шаблонов используется в данный момент:

Определяем какой шаблон в данный момент используется по умолчанию

Теперь в левой части страницы жмем на пункт меню «Шаблоны» и переходим в параметры нашего шаблона (в моем случае это Protostar):

Для переопределения компонентов шаблона Joomla переходим в параметры шаблона

На открывшейся странице «Менеджер шаблонов: Изменить шаблон» переходим на вкладку «Создать переопределение». Нас интересуют компоненты -> com_content, жмем по нему и в выпадающем списке выбираем шаблон article. После этого Joomla сообщит нам, что переопределение было создано и укажет путь, по которому следует проследовать:

Переопределяем компонент com_content в стандартном шаблоне Joomla 3

Теперь по FTP переходим в папку с нашим шаблоном /templates/ваш_шаблон/html/com_content/article и видим что в данной папке сразу два файла - default.php и default_links.php. Мы уже знаем, какой из файлов нас интересует, второй можно смело удалять, чтоб не занимал место.

Точно так же как в предыдущем варианте при помощи поиска находим нужный нам тег <h2>:

Находим строку кода которая отвечает за вывод заголовка материала Joomla

И меняем теги заголовка H2 на H1:

Меняем тег h2 заголовка материала на тег h1 и сохраняем. Теперь все по фэншую!

После чего сохраняем результат и убеждаемся в том, что теперь заголовок страницы находится в теге H1.

Критическая ошибка после того как заголовок материала получил тег H1

Какая еще может быть ошибка, спросите Вы, ведь у нас все получилось и заголовок материала, всё-таки стал первого уровня. Но проблема все же присутствует и я, кстати, был удивлен, что ни на одном сайте про нее нет ни одного слова.

Все говорят, как сделать заголовок в теге H1 и никто не сообщает о том, что после подобных изменений Вы можете получить не один, а сразу два заголовка первого уровня!

В чем же проблема? Вспомните про «странную логику» разработчиков Joomla, ведь они под заголовок первого уровня выделили заголовок пункта меню. Мы конечно поправили заголовок материала, а вот про тот самый заголовок пункта меню забыли.

Теперь представьте ситуацию, на Вашем сайте заголовок материала находится в теге H1, все хорошо, но вдруг Вам или другому доверенному пользователю захотелось включить отображение заголовка пункта меню. В итоге у Вас получится вот такая ситуация:

Два заголовка в теге H1, такая ситуация не приемлема. Это надо исправить!

WTF? Что это за два заголовка первого уровня? Вот именно про это я и говорил! Мы поменяли тег заголовка материала, но не учли, что тег заголовка пункта меню никуда не делся, он, как был первого уровня, так и остался.

Что в этом случае можно сделать? Самый простой вариант не показывать заголовок меню. Но как быть, если сайтом управляете не только Вы? Можно конечно объяснить всем пользователям с правами администратора, что не стоит включать отображение заголовка пункта меню.

Но я Вас уверяю, сколько людям не говори, что что-то делать нельзя, они обязательно это сделают! Кто то из вредности, кто то по глупости, да мало ли… Я предлагаю кардинально решить данную проблему – удалить возможность вывода заголовка пункта меню.

Сделать это не сложно – открываем вновь наш файл default.php, но на этот раз уже ищем тег h1. Поиск предложит нам 4 варианта – два из них только что созданные нами на строках 53 и 55, а так же те самые, которые относятся к заголовку пункта меню, находятся они в строке 31:

Заголовок пункта меню Joomla так же находится в теге H1

Самое банальное, что можно сделать, это удалить строку с заголовком пункта меню (номер 31) полностью. Но как показала практика можно удалить все строки представленные на скриншоте выше (с 29-ой по 38-ю).

С другой стороны конечно можно добавить некое условие в PHP код, которое будет запрещать выводить заголовок пункта меню именно в материалах, но этот вариант несколько сложнее. Если Вам будет интересен именно этот метод, напишите свой комментарий, я обязательно с вами им поделюсь!

Что мы в итоге получим? А получим мы следующее – заголовок материала как прежде будет первого уровня (h1), но на этот раз, если кто-то (возможно и Вы сами) по ошибке включит отображение заголовка пункта меню, ничего страшного не произойдет. На странице сайта будет отображаться только один заголовок первого уровня. А это как раз то чего мы и добивались! 

 

Добавить комментарий


Комментарии   

Елена
0 #1 Елена 28.01.2018 14:38
Как это понимать?
"Последующие подзаголовки должны начинаться с тега H2, в них ВЛОЖЕНЫ заголовки H3 и так далее"
Как в один тег H2 вложить другой H3 ? Вот такую конструкцию надо городить?
Заголовок 2
Заголовок 3

Я то все время считала, что H1-H6 должны просто на странице последовательно отображаться (не вложенно)
Цитировать
Joom4all
0 #2 Joom4all 28.01.2018 15:27
Цитирую Елена:
Как это понимать?
Я то все время считала, что H1-H6 должны просто на странице последовательно отображаться (не вложено)

Так и есть, заголовки должны отображаться последовательно. Собственно об этом и написано.
Цитировать
Катя
0 #3 Катя 01.07.2019 18:23
спасибо!
помогли)
Цитировать